// index.js
import * as api from '../../api/common';

Page({
  data: {
    list: [],      // 存储票夹数据的数组
    loading: false,  // 是否正在加载数据
    noMore: false,   // 是否已加载全部数据
    pageNum: 1,      // 当前页码
    pageSize: 10,    // 每页加载条目数
    userId: '',      // 用户ID，从本地缓存获取
    timeOptions: ['全部时间', '近一周', '近三个月', '近半年'], // 时间选项列表
    timeIndex: 0, // 当前选中的时间索引
  },

  // 选择时间
  selectTime(e) {
    const index = e.detail.value;
    this.setData({
      timeIndex: index,
      pageNum: 1,  // 重置页码
      list: [],    // 清空列表
      noMore: false, // 重置 noMore
    });
    this.loadData();  // 选择时间后重新加载数据
  },

  onLoad() {
    const userInfo = tt.getStorageSync('info');
    if (userInfo && userInfo.id) {
      this.setData({
        userId: userInfo.id,
      });
      this.loadData();  // 加载初始数据
    } else {
      console.error('获取用户信息失败');
      tt.redirectTo({
        url: '../loginByAccount/index'
      });
    }
  },

  async loadData(pageNum = 1) {
    const { userId, pageSize, timeIndex } = this.data;
    const params = {
      userId,
      range: timeIndex,
      pageSize,
      pageNum,
    };

    this.setData({ loading: true });

    try {
      const response = await api.ticketFolder(params);
      const newTickets = response.data.data;
      const totalPage = response.data.last_page;
      const currentPage = response.data.current_page;

      this.setData({
        list: pageNum === 1 ? newTickets : [...this.data.list, ...newTickets],
        pageNum: pageNum + 1,  // 更新页码
        loading: false,
        noMore: currentPage >= totalPage, // 判断是否已加载全部数据
      });
    } catch (error) {
      console.error('加载数据失败:', error);
      this.setData({
        loading: false,
        noMore: true, // 失败时视为没有更多数据
      });
    }
  },

  loadMoreData() {
    if (this.data.loading || this.data.noMore) {
      return;
    }
    this.loadData(this.data.pageNum);
  },

  toDetail(e) {
    const id = e.currentTarget.dataset.id;
    tt.navigateTo({
      url: `./detail?id=${id}`,
    });
  },
});
